<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // ES6 提供了 Map 数据结构。它类似于对象，也是键值对的集合，但是“键”的范围不限于字符串，各种类型的值（包括对象）都可以当作键。 


        // 属性名只能字符串，如果不是字符串会自动转为字符串
        let obj = {"name":"哈哈",'age':100,[document.body]:"测试"};
        console.log(obj);
        console.log(obj['[object HTMLBodyElement]']);


        // map语法
        // new Map([[key,val],[key,val],...]);        


        // 但是“键”的范围不限于字符串，各种类型的值（包括对象）都可以当作键
        let map1 = new Map([[1,"数字类型"],[true,"布尔类型"],[null,"null"]]);
        console.log(map1);


        /* 
            - size  获取Map的长度
            - set(key,val)  添加一条数据
            - get(key) 根据key获取val
            - has(key)  是否存在key
            - delete(key) 删除某条数据 
            - clear() 清空所有数据
        */

        console.log(map1.size);

        console.log(map1.get(1));
        console.log(map1.get(null));

        console.log(map1.has(1));//true

        map1.delete(null);

        map1.set("哈哈","hello");
        console.log(map1);

        map1.clear();
        console.log(map1);

    </script>
</body>
</html>